package com.dragon.modules.yuegou.model.park;

import com.dragon.modules.yuegou.entity.park.StatisticsTotalEntity;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 停车统计汇总表模型类
 *
 * @author pbuilder generated
 * @date 2020-03-20 15:40:26
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class StatisticsTotal extends StatisticsTotalEntity {

	@ApiModelProperty("超出时长（单位小时）")
	private BigDecimal beyondTime;

	public BigDecimal getBeyondTime() {
		return beyondTime;
	}

	public void setBeyondTime(BigDecimal beyondTime) {
		this.beyondTime = beyondTime;
	}

	/**
	 * 构造一个空停车统计汇总表模型对象
	 */
	public StatisticsTotal(){
		super();
	}

	/**
	 * 依据实体对象的信息构造一个停车统计汇总表模型对象
	 *
	 * @param entity 实体对象
	 */
	public StatisticsTotal(StatisticsTotalEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个停车统计汇总表模型对象
	 *
	 * @param other 其它对象
	 */
	public StatisticsTotal(StatisticsTotal other){
		super(other);
	}


	@Override
	public String getBusdId() {
		return busdId;
	}

	/**
	 * 设置商圈ID
	 *
	 * @param busdId 商圈ID
	 * @return 当前对象
	 */
	public StatisticsTotal busdId(String busdId) {
		this.busdId = busdId;
		return this;
	}

	@Override
	public String getMerchantId() {
		return merchantId;
	}

	/**
	 * 设置商户id
	 *
	 * @param merchantId 商户id
	 * @return 当前对象
	 */
	public StatisticsTotal merchantId(String merchantId) {
		this.merchantId = merchantId;
		return this;
	}

	@Override
	public String getParkingName() {
		return parkingName;
	}

	/**
	 * 设置停车场名称
	 *
	 * @param parkingName 停车场名称
	 * @return 当前对象
	 */
	public StatisticsTotal parkingName(String parkingName) {
		this.parkingName = parkingName;
		return this;
	}

	@Override
	public String getParkingId() {
		return parkingId;
	}

	/**
	 * 设置停车场ID
	 *
	 * @param parkingId 停车场ID
	 * @return 当前对象
	 */
	public StatisticsTotal parkingId(String parkingId) {
		this.parkingId = parkingId;
		return this;
	}

	@Override
	public LocalDateTime getBeginTime() {
		return beginTime;
	}

	/**
	 * 设置计算开始时间
	 *
	 * @param beginTime 计算开始时间
	 * @return 当前对象
	 */
	public StatisticsTotal beginTime(LocalDateTime beginTime) {
		this.beginTime = beginTime;
		return this;
	}

	@Override
	public LocalDateTime getEndTime() {
		return endTime;
	}

	/**
	 * 设置计算终止时间
	 *
	 * @param endTime 计算终止时间
	 * @return 当前对象
	 */
	public StatisticsTotal endTime(LocalDateTime endTime) {
		this.endTime = endTime;
		return this;
	}

	@Override
	public Integer getOccupyNumber() {
		return occupyNumber;
	}

	/**
	 * 设置本时间段结束后还占车位数量
	 *
	 * @param occupyNumber 本时间段结束后还占车位数量
	 * @return 当前对象
	 */
	public StatisticsTotal occupyNumber(Integer occupyNumber) {
		this.occupyNumber = occupyNumber;
		return this;
	}

	@Override
	public Integer getTotalNumber() {
		return totalNumber;
	}

	/**
	 * 设置时间段内停车总数量
	 *
	 * @param totalNumber 时间段内停车总数量
	 * @return 当前对象
	 */
	public StatisticsTotal totalNumber(Integer totalNumber) {
		this.totalNumber = totalNumber;
		return this;
	}

	@Override
	public Integer getChargeNumber() {
		return chargeNumber;
	}

	/**
	 * 设置时间段内超出免费数量
	 *
	 * @param chargeNumber 时间段内超出免费数量
	 * @return 当前对象
	 */
	public StatisticsTotal chargeNumber(Integer chargeNumber) {
		this.chargeNumber = chargeNumber;
		return this;
	}

	@Override
	public Long getStayedTimeTotal() {
		return stayedTimeTotal;
	}

	/**
	 * 设置时间段内超出时长(以秒为单位计算)
	 *
	 * @param stayedTimeTotal 时间段内超出时长(以秒为单位计算)
	 * @return 当前对象
	 */
	public StatisticsTotal stayedTimeTotal(Long stayedTimeTotal) {
		this.stayedTimeTotal = stayedTimeTotal;
		return this;
	}

	@Override
	public BigDecimal getFee() {
		return fee;
	}

	/**
	 * 设置时间内总计费用
	 *
	 * @param fee 时间内总计费用
	 * @return 当前对象
	 */
	public StatisticsTotal fee(BigDecimal fee) {
		this.fee = fee;
		return this;
	}

	@Override
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}

	/**
	 * 设置创建时间
	 *
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
	public StatisticsTotal createdTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
		return this;
	}
}
